﻿#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>
//#include <stdlib.h>
/*
*	找单身狗
	一个数组中只有两个数字是出现一次，其他所有数字都出现了两次。
	编写一个函数找出这两个只出现一次的数字。
	例如：
	有数组的元素是：1，2，3，4，5，1，2，3，4，6
	只有5和6只出现1次，要找出5和6.
*/
//int* FindSglNum(int* arr, int size, int* returnSize)
//{
//	*returnSize = 0;
//	int* res = (int*)calloc(2, sizeof(int));
//	for (int i = 0; i < size; i++)
//	{
//		int flg = 1;
//		for (int j = 0; j < size; j++)
//		{
//			if (i != j && arr[i] == arr[j])
//			{
//				flg = 0;
//				break;
//			}
//		}
//		if (flg)
//		{
//			res[(*returnSize)++] = arr[i];
//		}
//		if (*returnSize == 2)
//		{
//			break;
//		}
//	}
//	return res;
//}
//int main()
//{
//	int arr[] = { 1, 2, 3, 4, 5, 1, 2, 3, 4, 6 };
//	int returnSize = 0;
//	int size = sizeof(arr) / sizeof(arr[0]);
//	int* singleNums = FindSglNum(arr, size, &returnSize);
//	for (int i = 0; i < returnSize; i++)
//	{
//		printf("%d ", singleNums[i]);
//	}
//	free(singleNums);
//	singleNums = NULL;
//	return 0;
//}

#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <math.h>
int my_atoi(const char* str)
{
	assert(str);
	size_t len = strlen(str);
	size_t j = len - 1;
	// 个位
	int ret = str[j--] - '0';
	// 十位百位千位...
	for (int i = 10; i < pow(10, len); i *= 10)
	{
		ret += (str[j--] - '0') * i;
	}
	return ret;
}
int main()
{
	char str[10] = "9120";
	printf("%d\n", my_atoi(str));
	return 0;
}




//char* GetMemory(void)
//{
//	char p[] = "hello world";
//	return p;
//}
//char* GetString(void)
//{
//	char* p = "hello world";
//	return p;
//}
//void Test(void)
//{
//	char* str = NULL;
//	str = GetString();
//	printf(str);
//}
//int main()
//{
//	Test();
//	return 0;
//}

//#include <stdio.h>
//#include <assert.h>
//char* my_strncpy(char* dest, const char* src, size_t num) {
//	assert(dest && src);
//	char* t = dest;
//	while (num--) {
//		if (*src) {
//			*dest++ = *src++;
//		}
//		else {
//			*dest++ = '\0';
//		}
//	}
//	return t;
//}
//int main() {
//	char dest[] = "xxxxxxxxxxxxxxx";
//	char src[] = "abcd";
//	printf("%s", my_strncpy(dest, src, 2));
//	return 0;
//}

//#include <stdio.h>
//#include <assert.h>
//#include <string.h>
//const char* my_strncat(char* dest, const char* src, size_t num) {
//	assert(dest && src);
//	const char* t = dest;
//	if (num > 0) {
//		// dest = ָ'\0'
//		dest += strlen(dest);
//		while (num-- && *src) {
//			*dest++ = *src++;
//		}
//		*dest = '\0';
//	}
//	return t;
//}
//int main() {
//	char dest[20] = "xxxx\0xxxx";
//	char src[] = "abcd";
//	printf("%s", my_strncat(dest, src, 2));
//	return 0;
//}